package org.springblade.common.config;


import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.unit.DataSize;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import javax.servlet.MultipartConfigElement;

@Configuration
public class WebFileConfig extends WebMvcConfigurerAdapter {

	/**
	 * 图片保存路径，自动从yml文件中获取数据
	 *   示例： E:/images/
	 */
	@Value("${file-save-path}")
	private String fileSavePath;

	@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {
		/**
		 * 配置资源映射
		 * 意思是：如果访问的资源路径是以“/images/”开头的，
		 * 就给我映射到本机的“E:/images/”这个文件夹内，去找你要的资源
		 * 注意：E:/images/ 后面的 “/”一定要带上
		 */
		registry.addResourceHandler("/images/**")
			.addResourceLocations("file:"+fileSavePath);
	}

	@Bean
	public MultipartConfigElement multipartConfigElement(){
		MultipartConfigFactory factory = new MultipartConfigFactory();
		//文件最大KB,MB
		factory.setMaxFileSize(DataSize.parse("2MB"));
		//设置总上传数据总大小
		factory.setMaxRequestSize(DataSize.parse("10MB"));
		return factory.createMultipartConfig();
	}
}
